iT邦幫忙

2022 iThome 鐵人賽

DAY 21
0

前言

前兩篇介紹了 Kiali 工具,裡面有不同的 GUI 介面將 Application 可視化,雖然方便,但 Kiali 的介面都是固定的,如果想要把所需資訊都塞到同個頁面要怎麼做?本篇要介紹的 Grafana 就能幫助你客製化自己的 Dashboard。

Grafana 介紹

https://ithelp.ithome.com.tw/upload/images/20220930/20139235q8jiN3Vzh6.png

Grafana 是一個開源軟體,能夠將各種資料做成監控儀表板,支援多種資料來源,以及提供豐富的面板選擇,協助我們將資料視覺化。

https://ithelp.ithome.com.tw/upload/images/20220930/20139235OE0I1Lfjwc.png

Grafana Dashboard 介面,圖片取至 grafana.com

有接觸過 Prometheus 的人應該會聽到與 Grafana 結合的 Use Case,就是因為 Prometheus 預設的 GUI 功能不足,需要 Grafana 這種支援豐富圖表的工具幫助我們可視化 Metrics 資訊。

安裝 Grafana 工具

本篇參考 Visualizing Metrics with Grafana ,使用 Grafana 前需先在 Istio 環境準備好 Prometheus ,細節可參考 Day18 的教學,接著就可以用官方提供的 grafana.yaml 安裝。

  1. 使用 grafana.yaml 安裝 Grafana 元件
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.15/samples/addons/grafana.yaml

安裝方式參考 Istio - Grafana

Grafana 會安裝到 istio-system Namespace,檢查一下是否安裝成功。

  1. 使用 kubectl get pods -n <namespace> 查看 Pods 運行狀況
kubectl get pods -n istio-system

(輸出結果)

NAME                                   READY   STATUS    RESTARTS   AGE
grafana-96dd4774d-ftvm5                1/1     Running   0          3m28s
istio-ingressgateway-d54ff84fc-fpts7   1/1     Running   0          15d
istiod-68df67c57b-krrdx                1/1     Running   0          15d
kiali-575f548888-grcxs                 1/1     Running   0          2d
prometheus-6549d6bdcc-kxgsj            2/2     Running   0          3d4h

Grafana Pod 的 Status 為 Running 代表部署成功

  1. 接著使用 kubectl port-forward 將流量打入 Grafana
kubectl port-forward -n istio-system svc/grafana 8083:3000
  1. 在瀏覽器輸入網址連接到網站
http://127.0.0.1:8083

在瀏覽器即可看到 Grafana 的 Home 頁面。

https://ithelp.ithome.com.tw/upload/images/20220930/20139235ySwTmRXqRU.png

在 Grafana 查看 Istio 預設 Dashboard

因為我們是使用 Istio 提供的 Yaml 檔案安裝 Grafana,預設會先建立幾個 Dashboard 如下

  • Control Plane Dashboard
    • 監控 Istio Control Plane 的 Health 及 Performance 資訊
  • Mesh Dashboard
    • 提供所有 Services 的基本資料
  • Performance Dashboard
    • 監控 Service Mesh 的資源使用量
  • Service Dashboard
    • 提供 Services 詳細的 Metrics 資料
  • Workload Dashboard
    • 提供詳細的 Workload 資訊

接著就進入到 Dashboard,看看到底會顯示哪些資訊吧!

  1. 點擊左方 Dashboards,接著點選 Istio Control Plane Dashboard

https://ithelp.ithome.com.tw/upload/images/20220930/20139235CpiXPKod22.png

在 Istio Control Plane Dashboard 會有 Control Plane 的資料如 CPU 及 Memory 使用量。

https://ithelp.ithome.com.tw/upload/images/20220930/20139235gVJkDTcLb0.png

接著我們來看看跟 Service 有關的 Dashboard,需要先打入流量讓 Prometheus 蒐集 Metrics 才有資料可以顯示。

  1. 使用 kubectl port-forward 將本機流量轉移到 Productage
kubectl port-forward svc/productpage 8080:9080
  1. 執行腳本,每兩秒打入一次流量
while true; do curl -s 127.0.0.1:8080/productpage | grep reviews-v ; sleep 2; done

完成後就可以回到 Grafana 查看 Dashboard。

  1. 回到瀏覽器,點擊左方 Dashboards,接著點選 Istio Mesh Dashboard

https://ithelp.ithome.com.tw/upload/images/20220930/20139235RT8vH3d0uj.png

在 Istio Mesh Dashboard 可看到所有 Services 的資料,如 Latency 及連線成功比率。

https://ithelp.ithome.com.tw/upload/images/20220930/20139235JlKg0qIRFL.png

還有其他預設的 Istio Dashboard,可以自己嘗試看看。

總結

本篇簡單介紹了 Grafana 並透過 Istio 預設 Dashboard 了解有哪些資料呈現方式,下一篇會介紹如何在 Grafana 可視化特定資料,讓我們做出屬於自己的 Dashboard。


上一篇
Day20 - 使用 Kiali 建立 Istio Configuration
下一篇
Day22 - 使用 Grafana 自製 Dashboard
系列文
學會 Kubernetes 然後呢?由 Istio 進入 DevOps 偉大航路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言